Many companies and other organizations operate computer networks that interconnect numerous computing systems to support their operations, such as with the computing systems being co-located (e.g., as part of a local network) or instead located in multiple distinct geographical locations (e.g., connected via one or more private or public intermediate networks). For example, data centers housing significant numbers of interconnected computing systems have become commonplace, such as private data centers that are operated by and on behalf of a single organization, and public data centers that are operated by entities as businesses to provide computing resources to customers. Some public data center operators provide network access, power, and secure installation facilities for hardware owned by various customers, while other public data center operators provide “full service” facilities that also include hardware resources made available for use by their customers.
The advent of virtualization technologies for commodity hardware has provided benefits with respect to managing large-scale computing resources for many customers with diverse needs, allowing various computing resources to be efficiently and securely shared by multiple customers. For example, virtualization technologies may allow a single physical virtualization host to be shared among multiple users by providing each user with one or more virtual machines hosted by the single virtualization host. Each such virtual machine may represent a software simulation acting as a distinct logical computing system that provides users with the illusion that they are the sole operators and administrators of a given hardware computing resource, while also providing application isolation and security among the various virtual machines. Furthermore, some virtualization technologies are capable of providing virtual resources that span two or more physical resources, such as a single virtual machine with multiple virtual processors that spans multiple distinct physical computing systems.
For several reasons including load balancing, scheduled hardware/software maintenance operations and the like, techniques for live migration of virtual machines from one virtualization host to another may be implemented in some environments. During live migration, the state of various resources (e.g., physical memory, networking devices and the like) being used by a virtual machine at the source virtualization host may have to be replicated at a destination virtualization host while minimizing interruptions to the applications being run on the virtual machine. Furthermore, network connections between the migrating virtual machine and various other entities (such as other virtual machines instantiated at various other hosts) may have to be maintained, also while minimizing the interruptions. In at least some virtual computing environments, an encapsulation protocol may typically be implemented for network traffic between virtual machines instantiated at different hosts. In order to route packets directed to a given virtual machine to the appropriate virtualization host, mappings indicating the hosts at which various virtual machines are instantiated may have to be propagated among the entities responsible for implementing the encapsulation protocol (such as virtualization management components at the hosts, routers, etc.). However, it may not be straightforward to atomically and quickly propagate a mapping updated as a result of a live migration among all the different entities at which the updated mapping may be required.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to. When used in the claims, the term “or” is used as an inclusive or and not as an exclusive or. For example, the phrase “at least one of x, y, or z” means any one of x, y, and z, as well as any combination thereof.